package nil.ed.simulator.request.scheduler;

import java.io.Closeable;
import java.util.Set;

/**
 * @author lidelin.
 */
public interface Scheduler extends Closeable {

    /**
     * 添加调度单元.
     * @param scheduleUnit 调度单元.
     */
    void addScheduleUnit(ScheduleUnit scheduleUnit);

    /**
     * 获取正在调度的任务列表.
     * @return 正在调度的任务列表.
     */
    Set<ScheduleUnit> getSchedulingTasks();

    /**
     * 获取等待队列的长度.
     * @return 等待队列的长度.
     */
    int getWaitingCount();
}
